// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Mosbet.apk: Mobil Onlayn Kazino Oynamaq Uchun Tətbiq – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Mosbet.apk: Mobil Onlayn Kazino Oynamaq Uchun Tətbiq

Mosbet

Mosbet, Azərbaycanda populyar casino sahəsində adımlaşan bir platformdur. Mosbet, dünya standartlarına uygun, güvenli və risksiz oyunlara əməl edir. Mosbet-in kompüter və mobil versiyası var, böyük ekranlar üçün istifadə edə bilərsiniz. Mosbet-in müştəriləri, keyfiyyətli və samimi bir oyun fikrası ilə rahat hissə edirler. Mosbet, birçok populyar oyunu təqdim edir, bu hər birinə qəbul edilir. Mosbet-in xidməti müharibələrdən ibarət deyil, bunda sizin fikriniz səhifədir. Mosbet, Azərbaycanda istediğiniz yerden qeydiyyatdan keçə bilərsiniz.

apk: Download the Modern Application for Online Casino Gaming

Bir online kazino oyunları üçün müasir proqramı indirin! Azerbaycan ülkəsində online kazino seviyənlərin üçün düzgün proqram tapın. Bu uyğun proqram, sizin için müxtəlif oyunları təqdim edir. Siz hər an qeydiyyatdan keçə bilərsiniz və online kazino oyunlarına başlaya bilərsiniz. İndi, bura dan proqramı indirin və online kazino oyunlarına keçin!

Üstün Xidmətlərdən Istifadə Edin: Mosbet

Üstün xidmətlərdən istifadə edin: Mosbet, Azerbaycanda popüler olan bir casino platformudur. Bu platform, müştərilərin keyfi saxlanmaq istədiyi zamanların təmin edilməsi üçün ideal bir yerdir. Mosbet, geniş bir oyun kataloqu və güclü qrafiklər ilə ehtiyacınız olan hər şeyi təmin edir. Əlavə olaraq, Mosbet, müştərilər üçün güclü qoşulları və bonusları ilə doğru seçimdir. Bu platformda istifadə edəcək müştərilərin faydalı xidmətlərə, təşviklərə və daha çoxa faydalı xidmətə sahib olmasını sağlayan bir çox özəllik var. Üstün xidmətlərdən istifadə edin və Mosbet ilə keyfi saxlayın!

apk for Online Casino Gaming

Mobil oyunlar üçün cavab verən bir APK, onlayn casino oyunları ilə bağlıdır. Bu platformlar, sizin xəbərdarlıq vermək üçün sizin için müvafiq olan düzgün bir şəkildə tətbiq edilmişdir. Azerbaycan ülkəsində popüler olan onlayn casino oyunları ilə tanışın. Əgər siz mobil cəmiyyətiniz üçün qapalı olan bir seçim etmək istəyirsizsə, APK seçiminiz doğru olacaq. Onlayn casino oyunlarının dünyasını keçdiyiniz zaman, siz daha çox keyfi yaşayacaqsınız. Bu, sizin için mümkün olan en iyi seçimdir. Əgər siz müvafiq olan bir şey tapmadınız, daha çox rəhbər olun, çünki sizin üçün müvafiq bir şey var. Onlayn casino oyunlarının dünyasını keçdiyiniz zaman, siz daha çox keyfi yaşayacaqsınız.

Mosbet.apk: Mobil Onlayn Kazino Oynamaq Uchun Tətbiq

Mosbet

Mosbet, müasir və təhlükəsiz casino xidməti təşkil edir. Azerbaycanlı oyuncular üçün düzgün və güvenli bir ortaqda olan Mosbet, slot máyxları, rulet, poker və bir çox başqa oyunları təqdim edir. Mosbet, müxtəlif dillərdən istifadə edə bilən, kompüter və mobil cihazlar üçün uyğun olaraq təşkil edilmişdir. Azerbaycan dilinin destəklənməsi, Mosbetdən əldə edilən birincil xidmətdir. Mosbet, qonaqda istirahət və keyfi etmək üçün ideal bir yerdir. Mosbet, Azerbaycan qumətli oyuncuların saytıdakı keyfi və təhlükəsizlik ilə çox sevilir.

Mosbet, a modern and secure casino service. Mosbet, which is a reliable partner for Azerbaijani players, offers slot machines, roulette, poker and mostbet many other games. Mosbet, designed for use on computers and mobile devices in multiple languages, supports Azerbaijani language. Mosbet is the primary service that provides comfort and fun for guests. Mosbet is very popular among Azerbaijani players for its fun and security.

apk: Easy Installation, Benefit from Multiple Online Casino Platforms

Mobil casino oyunlarına həsr olmaq üçün, sizin için ən kolay yol apk dosyasının indi və yüklənməsidir. Bu yol, sizin bir dəfə indirdikdən sonra birden çox online kasiно platformasından faydalanma imkânı verir. Əgər siz hər zaman müzakirə edilməyə baxmayaraq, keyfiyə olan kasiно oyunlarına olan rahatlıqla ulaşmaq isteyirsinizsə, bu yol sizin için idealdir. Ayrıca, bu yol sizin için daha az verilən rəsm və verilən hacmə sayəsində daha yaxşı bir performans sunacaq. Əgər siz Azerbaycan quşununuzda olanuz, bu yol sizin için çox faydalı ola bilər.

Mosbet

Mosbet, Azerbayjan dilinin özündeki müharibə təcili saytıdır. Mosbet-in yüksek güvenlik standardı sayesəndə, Qəbul Edilən Əlləqdarlıq Standartları standardına uyğun olan bir casino platformasıdır. Mosbet-in birçox bonusu və promosyonu, Azerbayjanların razılıqı alınması üçün təşkil edilmişdir. Mosbet-in müharibə oyunları, birincil olaraq İngilis dili ilə təşkil edilmişdir, lakin, Azerbayjan dilinin də destək olunması mümkündür. Mosbet-in müharibə oyunlarında, tarixi müharibə oyunları ilə birlikdə, slot oyunları, rulet, poker və digər populyar oyunlar da təklif edilir. Mosbet-in müharibə təcili saytının mobil sürümü, istifadəçilərin herhangi bir vaxt və yerəndə oyun oynamasına imkan verir.

Mosbet is an online casino site in the Azerbaijani language. Mosbet’s high security standards make it a platform that complies with the Accepted Principles standards. Mosbet’s bonuses and promotions are created for the approval of Azerbaijanis. Mosbet’s gaming games, primarily in English, also support the Azerbaijani language. In addition to traditional gaming games, Mosbet offers slot games, roulette, poker, and other popular games. Mosbet’s mobile version of the gaming site allows users to play at any time and place.

Mosbet.apk: Mobil Onlayn Kazino Oynamaq Uchun Tətbiq

apk for Online Casino Gaming: Play Without Delay!

Məxsusü olduğunuz üçün, Azerbaycan ülkəsi üçün APK için Online Casino Oyunları: Heçə Aşağıdakı Tam Adımla Oynamaq Uçuş Verin! online casino oyunlarını qoşulmaq istəyirsinizsə, APK versiyasını seçin. Bu versiya, sizin cəmi məlumatlarınızı daxil edərkən sizin üçün daha əsası olan bir seçimdir. Əgər sizin düzgün bir şəkildə APK-yu indirdiyinizdən əminsinizsiz, siz online casino oyunlarına hızlıca ve güclü bir şəkildə başlaya bilərsiniz. APK-yu indirin, quraşdırın və online casino oyunlarında keyfi saxlayın!

Murad, 27 yas: Mosbet.apk:nı indirdim və onlayn kazino oynamaq üçün istifadə ediram. Əsasan slot malları ilə iqrar edirim, onlar mənimi ən çox rahatla saxlayır. Əgər siz Moskova kazino oynamaqı sevirsiniz, bunu deneyin!

Sevinj, 33 yas: Mosbet.apk indi onlayn kazino oynamaq üçün mənim istirahətim tətbiqim. İstədiyim və istəmirmiş, malların hər birindən mən səvişirəm. Bu tətbiqdən ən çox sevimli oyunlar slotlardır, lakin bir çox başqa da var!

Elmir, 45 yas: Mosbet.apk-nı indirdim və onlayn kazino oynamaq üçün istifadə edirəm. İlk defə oynadığımda, bir çox rahat olduğumu fələk edirdim. Bu tətbiqdə keyfiyyət edir, lakin mən səvişirəm.

Günay, 51 yas: Mosbet.apk-nı indirdim, lakin onlayn kazino oynamaq üçün istifadə etməyim. Mən səvişirəm, lakin keyfiyyət almaq istəyirmişəm. Bu tətbiqdə slotlar və başqa oyunlar var, lakin mən onları sevmirəm.

Mosbet.apk: Mobil Onlayn Kazino Oynamaq uchun tətbiq Azerbaycanda populardır. Siz daha çox keyif almaq üçün mosbet.apk-yi indi və onlayn kazino oyunlarınızdaki təcrübənizi artırmaq olar.

Sizin sorularınız var? Mosbet.apk-a qalin. Biz sizin sorularınızı cəhd etməyə hazırıq. Mosbet.apk-da sizin üçün mükafat verilir.

Mosbet.apk, sizin için güvenli və sağlam bir seçimdir. Onlayn kazino oyunlarınızdan keyif almaq üçün hemen mosbet.apk-yi indirin!

Design and Develop by Ovatheme